package com.cleaningcloud.cld.domain.vo;

import com.cleaningcloud.cld.domain.CldProject;
import com.cleaningcloud.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@Data
public class CldProjectContractVo extends CldProject {

    /**
     * 合同ID
     */
    private Long contractId;


    /**
     * 签订日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date signDate;


    /**
     * 合同开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同开始日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /**
     * 合同结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同结束日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /**
     * 合同到期天数
     */
    @Excel(name = "合同到期天数")
    private int contractEndDay;

    /**
     * 合同状态(1履约2到期3终止)
     */
    @Excel(name = "合同状态(1履约2到期3终止)")
    private Long contractStatus;

    /**
     * 结算日
     */
    @Excel(name = "结算日")
    private Long settlementDay;

    /**
     * 付款方式(1现金2对公转账3电汇4微信)
     */
    @Excel(name = "付款方式(1现金2对公转账3电汇4微信)")
    private Long paymentType;

    /**
     * 合同人数
     */
    @Excel(name = "合同人数")
    private Long contractNumber;

    /**
     * 合同金额
     */
    @Excel(name = "合同金额")
    private BigDecimal contractMoney;

    /**
     * 人均单价(元)
     */
    @Excel(name = "人均单价(元)")
    private BigDecimal contractStaffMonty;

    @Excel(name = "月利润")
    private BigDecimal monthlyProfit;

    @Excel(name = "实际在岗人数")
    private Integer onDutyNum;

    @Excel(name = "发票类型")
    private Integer invoiceType;

    @Excel(name = "合同终止原因")
    private String contractEndReason;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同终止时间")
    private Date contractEndTime;

    // 采集人
    private String collectionUserName;

    // 合同人数
    private int staffNumber;


}
